home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 26 / Cream of the Crop 26.iso / os2 / pvm34b3.zip / pvm34b3 / pvm3 / libfpvm / WIN32 / Pvmfspawn.c < prev    next >
C/C++ Source or Header  |  1997-07-22  |  1KB  |  59 lines

  1.  
  2. /* $Id: Pvmfspawn.c,v 1.1 1997/06/27 16:33:50 pvmsrc Exp $ */
  3.  
  4. #ifdef WIN32
  5. #include "..\..\include\pvm3.h"
  6. #include "..\..\src\pvmwin.h"
  7. #else 
  8. #include "pvm3.h"
  9. #endif
  10.  
  11. #include "pvm_consts.h"
  12.  
  13. #ifdef __WATCOMC__
  14.   #include "watforstr.h"
  15. void __fortran
  16. PVMFSPAWN (WatcomFortranStr *aout_str, int *flag, WatcomFortranStr *where_str, int *count, int *tids, int *info)
  17. {
  18.    char* aout_ptr  = aout_str->strP;
  19.    int   aout_len  = aout_str->len;
  20.    char* where_ptr = where_str->strP;
  21.    int   where_len = where_str->len;
  22. #else
  23. void __stdcall
  24. PVMFSPAWN (char *aout_ptr,int aout_len, int *flag, char *where_ptr,int where_len, int *count, int *tids, int *info)
  25. {
  26. #endif
  27.  
  28.    char taout[MAX_PROC_NAME + 1];
  29.    char twhere[MAX_HOST_NAME + 1];
  30.    /*
  31.     * Copy the program and where names to make sure there's
  32.     * a NUL at the end.
  33.     */
  34.    
  35.    if (ftocstr(taout, sizeof(taout), aout_ptr, aout_len)) {
  36.       *info = PvmBadParam;
  37.       return;
  38.    }
  39.    
  40.    /*
  41.     * if the where parameter is '*', pass a NULL pointer to
  42.     * initiate which will allow execution on any machine.
  43.     */
  44.  
  45.    if (*(where_ptr) == '*') {
  46.       *info = pvm_spawn(taout, (char**)0, *flag, "", *count, tids);
  47.  
  48.    } else {
  49.       if (ftocstr(twhere, sizeof(twhere), where_ptr, where_len)) {
  50.          *info = PvmBadParam;
  51.          return;
  52.       }
  53.    
  54.       *info = pvm_spawn(taout, (char**)0, *flag, twhere, *count, tids);
  55.  
  56.    }
  57. }
  58.  
  59.